前提
测试同事对项目进行性能测试。以500个线程,每个线程访问10000次来访问tomcat。测试进行5分钟后,tomcat不再提供服务。用visualvm发现线程死锁。
解决方法。
网上有很多说降低线程数,但是这是压力测试,不能修改线程数。然后经过阅读tomcat源码。原因是使用tomcat的nio协议会创建两个selector,导致死锁。由于没时间来码字,先把解决方案留下----换成nio2协议解决
测试同事对项目进行性能测试。以500个线程,每个线程访问10000次来访问tomcat。测试进行5分钟后,tomcat不再提供服务。用visualvm发现线程死锁。
网上有很多说降低线程数,但是这是压力测试,不能修改线程数。然后经过阅读tomcat源码。原因是使用tomcat的nio协议会创建两个selector,导致死锁。由于没时间来码字,先把解决方案留下----换成nio2协议解决
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。